[Table of Contents] [docx version]

SpreadsheetML Reference Material - Table of Contents

Volatile Dependencies

The volatileDependencies part provides a cache of data that supports Real Time Data (RTD) and CUBE functions in the workbook. Both of these types of functions require connectivity to external servers to retrieve their data. For RTD functions, an RTD interface defines how data is provided on the server, and how it is retrieved on the client. Similarly, CUBE functions access data in OLAP cubes via their own function syntax. The volatileDependencies part provides that cache of data and supporting information about these functions and their data servers and connections. This allows the spreadsheet application to work with cached values when recalculating the workbook when the external server is not available.

[Note: How users of SpreadsheetML access RTD data depends on the integration the user's spreadsheet application provides for RTD. end note]

[Note: Data connectivity can use a number of different technologies. One example of potential values stored in this attribute can be found at: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbaxl11/html/xlobjIRtdServer_HV03085058.asp end note]

File Architecture

The workbook holds the relationship to the volatile dependencies part.

Illustration

The following image shows an example implementation of CUBE and Real Time Data (RTD) functions in a worksheet.

The following example shows the XML that describes the functions in the illustration.

[Example:

<volTypes xmlns="…">
<volType type="realTimeData">
<main first="jrtdx.rtd">
<tp t="s">
<v>aaa: 4447</v>
<stp/>
<stp>aaa</stp>
<tr r="A1" s="1"/>
</tp>
</main>
</volType>

<volType type="olapFunctions">
<main first="xlextdat9 Adventure Works DW Adventure Works">
<tp t="e">
<v>#N/A</v>
<stp>1</stp>
<tr r="A6" s="1"/>
<tr r="A9" s="1"/>
<tr r="A8" s="1"/>
<tr r="A5" s="1"/>
<tr r="A4" s="1"/>
<tr r="A3" s="1"/>
</tp>
</main>
</volType>
</volTypes>

end example]

While RTD and Cube functions share the cache, there are differences in how the data is interpreted. For example, RTD dependencies, volTypes/volType/main@first specifies the ProgId of the RTD server. Whereas for OLAP dependencies, main@first indicates the connection name.